～ ぺ ん じ ゃ ら ま に あ ～

ぺんじゃらまにあ Ver1.1.2 取扱説明書

Pendulumania～ぺんじゃらまにあ～は、ゴムひものついた振り子を操っていき、ターゲットを破壊して点数を競う、フルマウスオペレーションのゲームです。最初はとっつきにくいかも知れませんが、慣れるにしたがって、最初とは比べ物にならないような高得点を出せるようになるのが特長です。

ヘルプファイルの使用法…左側に目次が表示されない場合は、上のタブの「表示」をクリックしてください。または、「オプション|タグの表示」を選択してください。


動作環境

以下の環境は、Pendulumaniaで遊ぶために最低限必要です。

  • Windows98, Me, 2000 (95はサポート外にしちゃいました。HTMLヘルプ表示できないし。多分遊べます)
  • DirectX5以上
  • 640x480のフルスクリーン表示に対応しているモニタ
  • CPU　Pentium100MHz相当以上
  • 空きメモリ　16MB以上
  • 綺麗に掃除されたマウス。トラックボールやタッチパッド、あるいはタブレット等でも、動作はしますが、おそらくまともに遊べないです。できるだけ、「マウス」を準備してください。
  • 綺麗に掃除されたマウスパッド

以下の環境は、Pendulumaniaを起動して、いいパフォーマンスを得るために、できるだけ必要です。

  • CPU　200MHz以上
  • ハードウェアMIDI音源(GM対応)
    (BGMは、YAMAHAの音源を使用して作曲しました。できれば、YAMAHAの音源で聞いてください(^^;))

また、Pendulumaniaを楽しむためには、プレイヤーは以下の条件を満たす必要があります(^^;

  • 地球上に在住し、常に重力になれて生活していること。逆立ちして生活したことがあれば更にいいです(謎)
  • 生まれてから今までに、ゴムひもと戯れたことがあること
  • ひもの先にボールとか5円玉とか石とかつなげて振り回したことがあること(笑)
  • Windowsの操作は全てキーボード!　マウスなんて邪魔くせぇ！　……な～んて思っていないこと(^_^;)

Pendulumaniaをプレイする前に、マウス系のユーティリティーはできるだけはずしてください。

特に、画面の右端までポインタを移動してから、さらに右に動かすと、ポインタが左端にジャンプする、といった類のユーティリティを起動している場合、速攻でゲームオーバーになってしまいます。こちらのプログラムからの対応はほぼ不可能ですので、よろしくお願いします。


ゲームストーリー

2つあります(おいおい)　ゲーム中の雰囲気は似ても似つかないので、覚悟してください。

ストーリーその1

このストーリーのアイデアは妖刀菊正(CANO-Lab)からいただきました。

某市立中学校のベテラン教師、●●●●は、今、悩んでいた。
彼の教育方針について。
彼が初めて教師になった30年前と、今では、明らかに生徒の様子が違っていた。
表面的には、むしろ、おとなしくなっている。昔は日常茶飯事だった、教室での喧嘩とか、そういうものはめっきり減った。いつもの授業もいたって平穏に進行するし、テストの成績だってよい。
だが…
彼には、去年、苦い経験があった。
授業中も非常におとなしく、問題児とは全然思えなかったはずのある教え子が、突然ナイフで彼に襲いかかってきたのである。

……すぐ「キレる」生徒……
新聞やテレビで問題になったことはあったが、まさか自分の教え子が…

職員会議でも、その事件は当然問題になる。
「教師の教育不足が問題だ」
「いや、学校に全て任せている、親のしつけ不足の問題だ」
「学校に刃物を持ってきてはいけないと校則で縛るべきではないのか」
「いや、むしろ親や教師の過保護が問題なのでは」
「生徒は今、校則や塾に縛られて身動きできず、ストレスを溜め込んでいるのではないのか」
「欲求不満を解放できる場所を見つけられず、突然爆発してしまうのでは」
「生徒と教師の距離があまり近すぎることも問題のはずだ…まあ、キレることはないだろうが」
「適度な距離を保つことが重要」
……

なるほど、と、彼は思った。昔の生徒は、教師の目の届かないところで、それは確かにどうしようもないほど悪ガキだったが、しかし、限度を知っていた。今の生徒は、本当にちょっとしたことでキレて、突拍子もない行動に出てしまう…

社会というひもに縛られた生徒のストレスを、うまく発散させなければなるまい。
人間の意識の深層に眠っているという、破壊の本能を…

そして、ゲームがはじまる。

ストーリーその2

このストーリーはkazamanさんから提供していただきました。

高校の頃、二人はいつも一緒だった…。
別々の道に進み、離ればなれになる二人。
大学に進学したケンイチ、地元でOLになったサヨコ。
遠距離恋愛。
でも二人は平気だった。二人の間には運命の糸が結ばれている、そう信じた。
だが運命の糸は伸縮し、時に脆い。
生活に疲れ、会えないストレスで荒れるサヨコ。
ケンイチはそんな彼女に何もしてやれない。会いに行けない。
彼女の肩をこの手に抱きたい。彼女の頬に触れたい。彼女の吐息を感じたい。
自分が地元に進学していれば…。焦りばかり募る。
できることといえば、そう、電話だけ。
時に突き放し、励まし、なぐさめ、勇気づけ、二人の愛をより確固たるものにしなければならない。
胸の中で、ますます彼女の存在が大きくなる。時にはケンイチの方がサヨコに振り回される。
二人の呼吸が一つにならないと続かない。
信じるんだ、自分を、彼女を。僕らの関係を。
二人で壁を乗り越え、打ち破り、思い出を築き、かならず一緒にゴールまで辿り着くんだ。
ケンイチはそう決意した。
そして、ゲームがはじまる。

ええと…（笑）。自機がケンイチ、ボールがサヨコです。で、ストリング部分が運命の糸。
ターゲットが、二人に起きる様々な事件。よく「運命の赤い糸」なんていいますが、
やはり糸は赤くしておかないと高得点は狙えないってことで。
やはり男女関係には多少の緊張感がないとね（笑）。


タイトル・オプション画面説明

タイトル画面の説明

  • NEW GAME…新しくゲームを開始します。
  • RANKING…ランキング画面を表示します。クリックでもとに戻ります。
  • OPTION…オプション設定画面を表示します。
  • RECORD DATA…プレイを録画しながら行えます。OPTION設定で、自動で毎回録画にすることもできます。
  • REPLAY DATA…録画したプレイを再生します。
  • EXIT GAME…ゲームを終了します。

オプション画面の説明

マウスを該当の欄に持っていき、クリックすることで、「可」「不可」を切り替えます。

DRAW BACKGROUND (背景の描画)
ゲーム中の背景のON/OFFを切り替えます。通常は「可」ですが、遅いマシンをお使いの方で、どうしても背景を表示すると40FPSを維持できない、といった場合に「不可」にしてください。
PLAY WAVE SOUND (WAVE音の再生)
効果音の再生を切り替えます。
PLAY MIDI MUSIC (MIDIの再生)
MIDIによるBGMの再生を切り替えます。
SHOW EACH SCORE (破壊ごとの点数表示)
これを選択しておくと、ターゲットを破壊するごとに、獲得した点数がしばらく表示されます。
AUTOMATIC SAVE (自動保存)
これを「可」にしておくと、RECORD DATAを選ばなくても、自動的に毎回のプレイをDATA1に録画するようになります。また、ネームエントリーも省略され、前回入力された名前が、自動で再利用されるようになります。高得点をねらってひたすらプレイするときなどに有効な設定です。通常は「不可」です。 「可」にすると、DATA1は毎回上書きされます。大事な録画データを消さないようにご注意ください。また、この機能を間違って有効にしてしまわないような特殊設定も可能です。下の「特殊オプション」をご覧ください。
EXIT WITH R-BTN (右ボタンで終了)
これをチェックしておくと、マウスの右ボタンをクリックしたときに、ゲームを中断してタイトルに戻ったり、アプリケーションを終了することができるようになります。誤操作を防ぐために通常はOFFです。慣れるとONにすると便利です。
VIEW FPS NUMBER (FPSの表示)
FPS(1秒に何回画面が更新されるか)を、画面の右上に表示します。40に近い値が出るように調整されています。35よりも小さい値しか出ない場合は、DRAW BACKGROUND, MINI SCREENSIZEを調節して、40に近い値で安定するようにしてください。
MINI SCREENSIZE (ミニ画面サイズ)
通常は「不可」です。これを「可」にすると、画面がサイズが小さくなり、モニタの中央に表示されるようになります。画面いっぱいに表示しなくて済むので少しだけ動作速度が改善されます。40FPSを維持できない場合には「可」にしておいてください。

特殊オプション

OPTION画面では設定できませんが、その他にも、さまざまな特殊設定が可能です。以下のオプションは普段使用することは少ないと思いますので、直接PMania.iniというファイルを変更する形で設定してください。

中には、よく分からずに変更すると混乱を招く機能もありますので、変更する場合は十分注意してください。

点数表示の桁数の変更・区切り桁数の変更

得点が12桁からあふれる人(ときどきいる)や、逆に得点が低くて、頭にゼロがつくのが邪魔で悔しい、という人は、得点表示の桁数を変更できます。PMania.iniというファイルをメモ帳で開いて、[GameSetting]のセクションの一番最後の

ScoreNumOfDigits=12

という行を探し、この数字を変更してください。最低で4桁、最高で20桁の表示にすることが可能です。ただし、あまり桁数が多いと本当に見づらいです(^^;　あと、頑張ったのですが、18桁以上にすると、ランキング表示で名前と得点が重なる可能性や、文字ピッチが狭すぎて見えないおそれがあります。まあ、18桁必要な人はいないとおもうのでいいですよね?
また、得点は、デフォルトでは4桁ずつで数字を色分けして見やすいように表示しますが、4桁ずつの区切りが気に食わない人は、

ScoreSeparate=4

この数字を3なり6なりに変更してください。

なお、表示桁数は、あふれそうになった時点で自動的に増えますので、基本的に、自分でいじる必要はないとおもいます。

破片の数の変更

PMania.iniというファイルをメモ帳で開いて、[GameSetting]のセクションの一番最後の

NumOfFragments=20

の20の数字を変更すると、ターゲットを破壊したときに出現する破片の数を増減できます。液晶ディスプレイなどを使っていて、破片のせいで画面が見づらいときに使用してください。

フルスクリーン画面初期化サイズの変更

PMania.iniの中から

Display800Mode=0

という行を探し、行末のゼロを1に変更してください。これで、フルスクリーンの画面の初期化を、デフォルトの640x480から、800x600に変更します。通常は必要ありませんが、必要だ、と感じた人は使ってください。

AutoSaveの不許可

PMania.iniの中から

RejectAutoSave=0

という行を探し、行末のゼロを1に変更してください。これで、OPTION SETTINGの画面で、「AUTOMATIC SAVE」を、可にできなくなります。これは、個人のマシンではなく、大勢が共有して使うマシンにPendulumaniaをインストールするときのことを考えたものです。大勢が遊ぶときに、Automatic Saveの機能は邪魔なので(特に、ハイスコアを取ったときに勝手に前回の名前を使用するという仕様)、間違って誰かがクリックしてしまわないように、実装しました。

ゲーム中の物理定数の変更

[ConstantSetting]
Gravity=1
CollisionConstant=1
NaturalLength=1
RubberConstant=1
BallMass=1

これらの行末の数字を1以外に変更することで、ゲームの中の物理定数を実験的にいじることができます。詳しくは「科学的?解説」のページをご覧ください。この設定で物理定数を変更した場合は、アプリケーションは実験モードとして起動するので、ゲームの保存・再生は一切行われませんので注意してください!　ゲームとは別に物理的興味がある人だけ使ってください。


遊び方

※ゲームを起動してタイトル画面でしばらく待つと、デモンストレーションが始まります。最初にそれを見れば、すぐに感覚がつかめると思います。

ゲームを開始すると、画面中央に「振り子」が現れます。この振り子を振り回して、画面全体に散らばっているターゲットにぶつけて、破壊していきましょう。

ゲーム画面説明

ゲーム中の画面は下のようになっています。

ルール

ゲーム中の操作は、マウスの移動だけです。クリックさえ使いません。マウスで移動できるのは、ボールの反対側につながれた、銀色のリングです。これを操作し、ゴムひもの反対側についているボールを振り回します。(重力も働いているので気をつけてください)

ボールを、画面上のターゲットにぶつけてください。勢いをつける必要はありません。軽くかするだけでもOKです。

振り子のゴムを大きく伸ばした状態で破壊すると高得点です。ただし、あまり伸ばしすぎると、ゴムひもは切れてしまい、即ゲームオーバーです。

ターゲットを破壊すると、即次のターゲットが出現します。次と、さらにその次(点滅している)のターゲットの位置は表示されていますので、次に破壊するターゲットの位置まで計算に入れて、ボールの軌道を調節してくのがコツです。

振り子のゴムひもと得点の関係

ターゲットを破壊することによって、得点が入っていきます。その時の得点の入り方は、

得点 = (振り子の伸び率) X (コンボカウンタの値)2 X ボーナス倍率

となっています。

  • 振り子の伸び率は、ゴムが全然伸びていないとき(自然長以下)がゼロ、伸びきった状態(切れる寸前)が100です。
  • コンボカウンタの値は、画面中央に表示されています。連続してどんどん破壊していくと、コンボカウンタの値が増えていきます。といっても、かなりコンボの判定は甘いので、頑張れば100連続コンボも狙えます。
  • ボーナス倍率は、下のようになっています。
    伸び率が0パーセント(不可) | 0
    伸び率が1パーセント以上、40パーセント未満(可) | 1倍
    伸び率が40パーセント以上70パーセント未満(優良)
    伸び率が70パーセント以上90パーセント未満(秀逸) | 5倍
    伸び率が90パーセント以上(完璧) 完璧を取った回数×10倍
    (ただし最高200倍まで)

例を挙げましょう。コンボ数10のときに、80パーセントの伸び率でターゲットを破壊したときは、

得点 = 80 X 102 X 5 = 40000

というわけで、40000点になります。コンボ数100で、90パーセントの伸び率で10回目の「完璧」を出してターゲットを破壊したときは、なんと

得点 = 90 X 1002 X (10 X 10) = 90000000

9千万点です。逆に、伸び率がゼロの状態で破壊した場合は、点数は全く入りません。

ゴムひもは、あまり伸ばしすぎて、100パーセントを越えてはいけません(ゲージが右に振り切れた状態。ピキッという音がします)。
ゴムが伸びきった状態でも、すぐに100パーセント未満に戻せば、即切れてしまうわけではありませんが、ゴムの劣化が起こります。つまり、下のゲージの全体の幅が、小さくなり、ますますゴムひもが切れやすくなってしまいます。下手すると回復不能な状況に。

100パーセントを越えたまま、すぐに(0.25秒以内に)戻さなかった場合は、ゴムひもが切れてしまい、そこでゲーム終了です。

ターゲットの色

ターゲットには、黄色、緑、赤の3種類があり、破壊したときの効果が違っています。

  • 黄色のターゲットを破壊しても何も起こりません。普通に点数が入ります。
  • 緑のターゲットを破壊すると、下の伸び率ゲージが少しだけ大きくなり、ゴムひもが切れにくくなります。
  • 赤のターゲットを破壊すると、振り子のボールの半径が、少しだけ大きくなります。ターゲットを破壊しやすくなりますが、その分、ボールが重たくなります。気をつけないと、すぐにゴムが切れてしいます。

得点の入り方はどの色でも一緒です。

制限時間

制限時間は画面右上に表示されています。ターゲットを破壊することで、すこしだけ延長されます。ゼロになるとゲーム終了です。


録画・再生機能について

Pendulumaniaでは、プレイを録画・再生する機能がついています。録画データの数は10です。

録画の方法

タイトル画面で、NEW GAMEの代わりに「RECORD DATA」を選択してください。録画データの選択に移ります。10個所のデータのうち、録画したい場所をクリックしてください。既に録画データがある場合は、上書きされます。
そのあと、ネームエントリーに移ります。録画ファイルには、プレーヤーの名前も記録されますので、ゲームが始まる前のネームエントリーとなります。
あとは、普通どおりプレイしてください。録画中は、ゲーム画面の右下に、「●」のアイコンが点滅しています。

また、上による方法とは別に、オプション画面でAUTOMATIC SAVEを「可」にする、という方法もあります。こうしておくと、ネームエントリーも省略され(前回使用したネームがそのまま再利用されます)、普通に「NEW GAME」を選んでも、毎回のプレイデータがDATA1に自動で録画されます。

AUTOMATIC SAVEを「可」にすると、毎回、確認もなくDATA1にあるデータが上書きされます。大事なデータを間違って消さないように注意してください。

また、録画データは、"Rec"のフォルダに、Rec??.dat(??はデータ番号)の形で格納されています。この名前をエクスプローラなどで変更すれば、録画データを移動、保管、バックアップすることもできます。ただし、ファイル自体ははあるが正当なファイルではなく再生できない、という場合もありますのでご注意ください。

Pendulumania1.1で作成したデータは、Pendulumania1.0では再生できません。逆は可能です。

再生の方法

再生は、タイトル画面で「REPLAY DATA」を選択してください。各データには、得点と、プレーヤーの名前、日付けと時刻が記録され、マウスでポイントすると情報が表示されます。クリックすると再生開始です。

※ヒント。再生中にSHIFTキーを押すと、ノーウェイトモードに移行するので、押している間早送りが可能です。…マシンパワーに余裕がある場合に限られますけどね。

余談ですが、Pendulumaniaのタイトル画面でしばらく待つと始まるデモンストレーションのデータは、"Rec"フォルダの、Rec0.datに記録されています。手動で自分の録画ファイルと入れ替えることも可能です。

録画、再生ファイルは、naruto/CANO-Labの許可なく再配布しても構いませんが、中身の解析、変更は厳禁です。また、録画ファイルを、Pendulumaniaの録画ファイル以外の用途に使用することを禁止します。(…って、それ以外の用途ってあるのか?)


キーボードでの操作一覧

基本的に、Pendulumaniaはフルマウスオペレーションのゲームですが、キーボードから、以下の操作が可能です。

キー操作 | 機能
P | ゲームのポーズ
ESC または Q | ゲーム中はゲームを中断してタイトルに戻る。 タイトル画面では、ゲームを終了する。
S | スクリーンショット。 PMania.exeと同じ場所に、ScrSht??.bmp(??は通し番号)という名前の、320x240サイズの256色BMP画像を生成します。 PrintScreenキーを使用すると、パレットの関係できちんとした画像が取れないので実装しました。
C | 強制的にタイムアップにしてゲームを中断します。とりあえず今までの得点でランクが表示されます。ランクインしていれば、ネームエントリーもできます。 プレイ中で、かつ録画・再生を行っていないときのみ有効です。 利用価値は、はっきり言ってないですが。自爆したきゃマウス振り回せばいいだけですし(^^;
Shift | 一時的にノーウェイトモードに移行する。画面を早送りできます。


スコアランキングについて

ハイスコアの結合

「ゲームにはハイスコア機能が普通ついてるけど、名前を入力しても、どうせ自分の名前しか載らないんだから意味がないよな～」などとお思いのあなたに。

アプリケーションを起動したときに「ハイスコアの結合」を選択すると、複数のハイスコアファイルを1つに統合することができます。

ハイスコアファイルを左側のボックスにドラッグ&ドロップするか、あるいは下の「参照...」ボタンで1つずつハイスコアファイルを選択してください。選択したハイスコアファイル全部を統合して、全体でのトップ10を生成し、右側に表示しますので、これを保存してください。

つまり、知り合いから、メールなりなんなりで受け取ったハイスコアファイルを、自分のハイスコアファイルと統合すれば、2人で共通のハイスコアで遊ぶことができる、というわけです。

また、保存するときに、保存するファイル名の拡張子を.htmlにすると、HTML形式でスコアファイルをエキスポートできます。拡張子を.txtにすると、テキスト形式でエキスポートできます。…あんまし使わない機能だと思いますが、スコアをホームページで堂々と公開したいときなどにどうぞ(やりたいのは作者だけだって)

※同じ機能をするオプションツールとして、PMMerge.exeというユーティリティーを配布していますが、Ver.1.1では本体に統合されたため、基本的に必要なくなりました。


科学的?説明

Pendulumaniaでは、振り子の動きを、物理法則に基づいてかなりリアルにシミュレートしています。

必要ないという人がほとんどでしょうけど、ときどき質問があるので、Pendulumaniaの中で使われている物理定数・原理などを書いておきます。定数はテストプレイ中に、最適なゲームバランスになるようにいろいろ調整したので、切りの悪い数字ですが許してください(^^;

これを読むことでPendulumaniaの得点がアップすることは、まずないと思いますので、気になる人向けです。

※2000年現在、下で説明していることは全て高校力学(一部中学)の範囲内です。

単位

説明の都合上、長さの単位はpixel、時間の単位はtick(=0.025秒)、質量の単位はkgとします。

定数

壁とボールとの衝突係数
0.7です。ボールが画面上下左右の壁(&天井、床)に跳ね返ると、ボールの速度は、跳ね返る前の速度の0.7倍になります。
重力加速度
0.2[pixel/tick2]です。1tickごとに、重力方向にボールのスピードがこの値だけ加算されます。
※ついでにボールを破壊したときの破片にも同じ重力が加わります。
ゴムの弾性定数
0.008[kg/tick2]です。ゴムの伸びにこの比例定数をかけたものが、ボールがゴムから受ける力になります(フックの法則)。この力÷ボールの質量が、ボールの加速度になります(ニュートンの力学基本法則…運動方程式)。
※ボールの質量はボールの半径をもとに自動計算しています
ゴムの自然長
0.25[pixel]です。これは、ゴムに全く力が加わっていないときのゴムの長さのことであり、いわゆるゴムの『伸び』は、「ゴムの長さ-ゴムの自然長」になります。ゴムの長さが、ゴムの自然長よりも短い場合は、ゴムはボールに力を及ぼしません。(その結果重力だけが働き、ゴムは放物線を描きます)
なお、緑のターゲットではゴムの自然長は増加しません。緑のターゲットを破壊して増加するのはゴムの伸びの最大値です。
※ゴムの長さが自然長よりも短い、と書きましたが、実際はそんなことはないですね(^^;　ゴムがたるんでいる状況だと考えてください。

計算

振り子の物理的シミュレートは、40分の1秒(=1tick)単位で行っています。

まず、重力とゴムからの力によって、ボールに加わる加速度を計算します。

ボールの加速度 = 重力加速度定数 + ゴムからの力による加速度

ゴムからの力による加速度は、ゴムの伸び x ゴムの弾性定数 ÷ ボールの質量で求まります。

1tickは十分短いので、この間ボールの加速度は一定であると近似して、次にボールの速度を算出します。

ボールの速度 = 前の瞬間のボールの速度[pixel/tick] + 加速度[pixel/tick2] X 1[tick]

今度は、1tickは十分短いので、この間ボールの速度は一定であると近似して、ボールの位置を算出します。

ボールの位置 = 前の瞬間のボールの位置 + ボールの速度 X 1

壁に衝突したときの計算は、これとは別に行っています。なお、加速度・速度・位置は全てベクトル量(x方向とy方向がある)です。計算上は水平方向と垂直方向を独立にやればOKです。

※速度と位置を求めるところで出てくる、X1ですが、1tickごとの計算なので1になります。「移動距離=速度X時間」ですが、速度の単位が「1tickごとの移動距離」になるように取ってあるので、X1となり、計算が楽になります(実質、ただの足し算になる)。速度の方も一緒です。

注意

Pendulumaniaでは、ゲーム中のリアルな振り子の動きを、基本的には物理法則に厳密に基づいて再現しています。が、一部近似計算も行っていますので、以下の点に注意してください。

  • 空気の抵抗は計算上は無視しています。が、代わりに、ボールの速度には最大値を設けてあります。これは、必要以上にボールの速度が上がりすぎることで、コマ間でボールがターゲットをすり抜けてしまったり、制御不能になってしまったりする問題が考えられるからですが、非常に擬似的な空気抵抗のシミュレートと考えても構いません。速度の上限は[pixel/tick]となっています。
  • 壁とボールとの弾性定数は0.7固定ですが、ずれが生じます。これは、位置計算を40分の1秒ごとに行っており、厳密な壁との衝突時間を計算していないためです。つまり、ある瞬間にはまだ衝突していなかったのが、次の瞬間にはすでに衝突したあとだった、ということが起こります。Pendulumaniaでは、この場合でも衝突の発生を40分の1秒単位で捕らえ、計算上ボールが壁にめり込まないような処理を施しますので、わずかに誤差が生じます。目で見て分かるようなものではありませんが。
  • 壁とボールの衝突前の速度が非常に小さい場合は、跳ね返りの処理を行わず、壁面法線方向のボールの速度をゼロにします。そうしないと無限回数の跳ね返りをシミュレートしないといけなくなります(^^;
  • ボールの質量と半径は、赤いターゲットを破壊するごとに、ともに直線的に増加します。本当はボールの体積は半径の3乗に比例するのですが、質量も3乗で増加させると、急激にボールが重たくなってゲームにならなくなります。というわけで、赤いターゲットを破壊するごとに、ボールの密度は小さくなっていると考えてください(^^;

物理定数を変更する

さて、ここまで説明を読んだ人なら、これらの物理定数をいじったら、ボールがどんな動きをするのか、気になることでしょう。というわけで、Pendulumaniaでは、今まで説明した物理定数のうちいくつかを、実験的に変更してみる機能があります。

ただし、変更することによってゲームのバランスが崩れてしまいますので、これらを変更した状態では、「ゲームの録画」「ゲームの再生」「ハイスコアの記録」は一切行えません。また、結果表示画面でも、ランクは表示されません。というわけで、既にゲームではなくなってしまいますので、試して満足したら、さっさと元に戻してください(^^;

では、変更の方法を説明します。

PMania.iniという設定ファイル(歯車のアイコンが付いているものです)をメモ帳で開いてください。下のような個所があると思います。

[ConstantSetting]
Gravity=1
CollisionConstant=1
NaturalLength=1
RubberConstant=1
BallMass=1

下の5行の行末にある、5つの「１」の数字を変更することで、ゲーム中の物理定数を実数倍することができます。(数字は半角文字で入力しましょう)

例えば、重力を2倍にしたらどうなるだろう、と思った場合は、Gravity=2としてこのPMania.iniファイルを保存して、ゲームを起動してみましょう。重力2倍の状況でゲームがプレイできます。(点数は記録されません)　他も全部同様です。

ただし、あんまり大きい数字(10とか100とか)は絶対に入力しないでください。プログラムがエラーを起こしたり、変な動きをするようになっても知りません。また、あまり通常の設定から離れた場合には正しいシミュレートは行えません。妙な設定にしてゲームが終わらなくなったら、ESCキーを押してみてください。

Gravity以外は、マイナスの値も指定しないでください。(指定してあったら自動的にその数字の絶対値を使用します)

Gravity(重力)
これは重力加速度を変更します。0にすれば無重力、マイナスの値を指定すると重力が反転します(^^;
CollisionConstant(壁との衝突係数)
壁とボールの跳ね返り具合を変更します。0にするとまったく跳ね返りません。大きくしすぎると、衝突するたびにスピードアップしてしまうという恐ろしい事態になります。
NaturalLength(ゴムの自然長)
ゴムの自然長(まったく伸びていないときの長さ)です。あまり大きくすると、どんなに振り回してもゴムは伸びていない、というような状況になってしまうため、振り子をまったく操作できなくなってしまいます。
RubberConstant(ゴムの弾性定数)
ゴムの弾性定数を変更します。大きくすると、いわゆる「強力なゴム」になります。小さくすると、振り子を動かせなくなってしまいます。
BallMass(ボールの質量)
そのまんまです。ボールの質量を変更します。0にはしないでください。

これによって物理定数を変更できますが、「ボールのスピードは一定以上に上がらない仕様にしてある」ので、その点は注意してくださいね。例えどんなに軽いボールや強力なゴムを作っても、スピードはある程度以上には上がりません。


サポート

作者連絡先

このゲームについての御意見ご感想くをぜひ、電子メールで、

mikiso@gf6.so-net.ne.jp

まで、または、CANO-Lab掲示板までお願いします。フリーソフトを作るときのやる気の元は感想メールです(^^;)　よろしくお願いします。

障害報告

ゲームがうまく動かない、起動しない、動作がおかしい、といった症状がありましたら、同じく上のメールアドレスにお願いします。その際、もしもPMania.exeと同じディレクトリに、

dddd.debug

というファイルが生成された場合は、その内容も教えてください。

質問の前には、「Q&A集」のページもご一読をお願いします。また、CANO－Labホームページにても、Pendulumaniaの不具合についてのよくある質問などを公開していきます。できるだけ、メール送信の前にチェックをお願いします。

ただし、障害報告を受け付けても、解決することを保証はしません。

CANO－Labホームページ
http://jn.swee.to/cano/

免責事項

このソフトはフリーウェアです。

使用に当たって、動作保証は一切いたしません。このソフトを使用した、あるいは使用できなかった結果に関するいかなる損害も補償いたしません。


Q&A集

不具合などがありましたら、とりあえずこちらのページをご覧ください。

アンインストール

飽きた!　つまらん!　消す!　消す!　消すー!

Pendulumaniaのディレクトリを削除してください。レジストリは使っていません。

起動・終了関連の問題、ハードの問題

全く起動しないんですけど…

  • 動作環境を確認してください。タイトルのロゴさえうまく表示できない場合は、DirectXがインストールされているか、メモリは十分かなどを確認してください。
  • 起動に必要なファイルがそろっているか確認してください。最低限起動に必要なのは、PMania.exe, Images.qda, Sounds.qda, kbgm32.dllです。kbgm32.dllは、Windowsの表示のオプションで、「全てのファイルを表示」にしていないと表示されない場合があります(Windowsの嫌な仕様…)。気をつけてくださいね。この表示の有無は、エクスプローラの「表示｜フォルダオプション...」で設定可能です。

遅くてかないません。なんとかしてくださいっ

  • 他に起動しているアプリケーションがある場合は、全て終了して試してみてください。
  • オプション設定で、DRAW BACKGROUNDを「不可」に、MINI SCREENSIZEを「可」に設定してください。

ビデオボードやCPUが遅い場合はどうにも出来ません。ビデオボードやCPUが十分高速なのに…という場合は、プログラム上の問題があるかもしれませんので、パソコンの環境を書いた上でnarutoにメールください。

速くてかないません。なんとかしてくださいっ

うらやましい悩みです(笑)
マウスの動きが速すぎて制御しづらい場合は、一度終了し、コントロールパネルの「マウス」で、ポインタの速度を遅めに設定してください。たいてい操作しやすくなります。
現在のところウェイトをかける気は有りませんので、40FPSが速すぎる、という場合は……ひたすら練習してください(爆)

ゲームの途中でディスクアクセスが始まり、突然画面が止まったり、アニメーションが遅くなったりする

フロッピーからPendulumaniaを起動することは避けてください。特に、録画再生モードのときは随時ディスクにアクセスしますので、遅いドライブだと、画面が一瞬（長いと数秒）止まることがあります。録画再生を行っていないときや、ハードディスクから駆動しているときに、突然画面更新が遅くなったり、大量にディスクアクセスが始まった場合は、Pendulumania以外のソフトがバックグラウンドで動作しているか、あるいはメモリ不足によるスワップが原因と考えられますので、他に起動中の常駐ソフトをはずしてください。

他のマシンで録画した記録データを、別のマシンで再生したら微妙に得点がずれたり、途中から変になります…

ありゃりゃ…起こらないと思っているのですが、もしこの現象が起こった場合は、CPUの精度や丸め方の違いによる実数演算の誤差が原因と考えられます。大体うまくいっているのに、どうも少しずれる、といった場合は、お手数ですが、この現象が起こったCPU(記録側・再生側両方)を、narutoまで教えてください。お願いします。
自分のマシン内だけで記録再生する分には、まずこのような現象は起こらないと思いますが……

ウィンドウモードでの起動に対応して欲しい

Pendulumaniaは、スクリーン256色モードで動作しますが、このときに頻繁にパレットを書き換えています。したがって、ウィンドウモードの実装はそれほど容易ではありません。加えて、フルマウスオペレーションということで、間違えて、他のウィンドウの外をクリックしたりする可能性が非常に高く、ゲームの性質からいっても、画面の一部だけを占有してのゲームはちょっとやりにくいとおもいます。というわけで、ちょっと躊躇していますが、要望が多ければ考えます。
「会社や勉強部屋でこっそりプレイしているときに人が来ると困るから」というような場合は…いざというときに右クリック連打で終了しましょう(^^;　(<EXIT WITH R-BTNを可にする)

オプション画面で、PLAY MIDI MUSICを可にできません
オプション画面で、PLAY MIDI MUSICを可にしているのに、BGMが鳴りません

ともに、MIDI音源の初期化の問題と思われます。まず、あなたのパソコンにMIDI音源が正常にインストールされていることを確認してください。それがOKの場合は、他にMIDIを使用しているゲーム、メディアプレーヤー、シーケンサソフトなどを全て終了して、Pendulumaniaを再起動してください。
なお、それでも調子の悪いマシンがあるみたいですが…ちょっと僕の技術力ではどうにもならないかもしれません(^^;

ゲームのルール、ゲームシステム関連

ハイスコアとっても、ネームエントリーができなくなりましたが…
セーブデータ1が、勝手に消えたり変わったりしました…

OPTIONのところで、「AUTOMATIC SAVE」を有効にしていると、前回入力した名前データを勝手に再利用し、しかもデータ1を利用して勝手に毎回データを自動記録するようになります。高得点をひたすら狙って、できた記録データを公開しよう、という人のための機能ですので、通常はこれを「不可」にするようにしてください。

録画モード中、ESCキーを押してゲームを中止したのに、前回記録されていたデータが消えてしまいました。

これは仕様です。RECORD MODEでデータを選択した時点で、すぐに今までの記録を上書きする形で新しいファイルが作られて、ディスク上に記録が開始されます。そのため、途中でゲームを中止したり、あるいは何らかの原因でプログラムが異常終了した場合でも、今までのセーブデータは消えてしまいます。ご了承ください。

他の人のプレイファイルを再生しようとしたら…あのモザイクは何?

他力本願で上の方のランクを見てしまうことがないようにという配慮です(^^;　PMania.iniの中のAppearedMaxRankに、あなたのマシンで実際にプレイして取った最高ランクが記録されています。したがって、自力で最高ランクを見れば、あのモザイクは消えますのでご安心ください(^^;

10万点くらいしか取れないのに、上のほうにゼロがいっぱい…悔しいから消えて欲しい(T_T)

桁数は変更できます。その設定方法については、オプション画面についてのページをご覧ください。

ちゃんと最後までプレイしたのに、録画ファイルが記録されないのですが?
ちゃんといい得点とったのに、ランキングに載らないのですが?

…ゴムが切れた瞬間に、慌てて右クリックとかでリセットかけてませんか?
録画の終了のタイミングは、結果表示画面が表示される直前です。ゴムが切れてからしばらくボールが自由落下をしている時に、慌ててタイトル画面に戻ると、録画中止の扱いになります。落ち着いて結果を見ましょう(^^;

また、得点が記録されるのも同じタイミングです。落ち着いて落ち着いて。

得点のルールがわかりません。どうなってるの?

「遊び方」をご覧ください(^^;

ゲーム終了後のランク表示、「A」ランクの上にもなんかあるみたいですが、最高ランクは何ですか?

秘密です。噂によると、かなり上まであるそうです。自分の目で確かめてください。

録画ファイル「Rec??.dat」が、きちんとRecフォルダにあるのに、REPLAY DATAで認識されていません

  • その録画ファイルは、きちんと最後まで録画されたものでしょうか?　録画途中に、ESCキーや右クリック、あるいはエラーで録画が中断されたとき、「Rec??.dat」ファイルが残ることがあります。最後まで録画されていない、問題のあるファイルの場合は、プログラムはそれを自動検知し、画面に表示しないようにします。
  • その録画ファイルは、Pendulumaniaの同じバージョンで保存されたものでしょうか?　バージョンが違う場合は、プログラムがそれを識別して、画面に表示しないようにすることがあります。その場合は、保存されたバージョンと同じバージョンのプログラムでしか再生できません。
  • 特に、Pendulumaniaの1.0では、1.1で録画したファイルを再生できません。これは仕様です。この2つバージョンで、ゲームのルールや得点に関わる部分には変更を加えていないのですが、いろいろあって再生できません。逆に、1.0で録画したデータは1.1で再生できます。

ハイスコアを初期化したいのですが

PMScore.datというファイルを削除してください。

最初のロゴ表示が邪魔です。飛ばしたいのですがどうすればいいんですか?

飛ばせません(^^;　ですが、Shiftキーを押しつづけることで、画面の書き換えの待ち時間をゼロにすることができますので、これで表示を早送りすることが可能です(速いマシンの場合に限られますが)

その他

ソースコードの配布・公開はありますか?

申し訳ありませんが、とても、堂々と公開できるような代物ではありません(爆)　かなりプログラム構造失敗しちゃったと思ってますので。
ただし、個別にnarutoに連絡くだされば、対応はします。ハイスコア暗号化部分のソースだけは配布できません。ご了承ください。

難しすぎてつまんないんですけど…

慣れてください。

つまんない。ダウンロードして損した。責任取ってダウンロードの費用弁償しろ!
Pendulumaniaをプレイしていたらパソコンが壊れた!
おもしろすぎ。Pendulumaniaをプレイした時間を返せ!

大変申し訳ありませんが、Pendulumaniaは個人の責任でプレイしてください。Pendulumaniaの使用、あるいは不使用の結果生じたいかなる損害についてもnaruto/CANO-Labは免責とさせていただきます(^^;

曲が変。うるさいぞ。

慣れてください。　＜嘘です　　…適当にお気に入りのMIDIと入れ替えてください。
YAMAHAの音源で作成したので、Rolandの音源などではかなり変に聞こえます(T_T)　変に聞こえることを確認済みです。
未確認情報ですが、プレイ中の曲によって点数は大きく左右されるみたいですよ(笑)　まあ、下手なりに一生懸命作曲したので、よかったら使ってやってくださいよぉってことで、ね。


スタッフ

著作権

著作権について

このゲーム中のプログラム、グラフィック、サウンド、音楽の著作権は、すべてnaruto/CANO-Labが保有します。

(C)1999-2001 naruto/CANO-Lab
All Rights Reserved.

転載、配布については、「転載・配布について」のページをご覧ください。

免責事項

このソフトはフリーウェアです。

使用に当たって、動作保証は一切いたしません。このソフトを使用した、あるいは使用できなかった結果に関するいかなる損害も補償いたしません。


転載・配布について

転載、配布について

フリーウェアですので、個人間の複製はnaruto/CANO-Labの許可なく行ってくださって構いません。もちろん、PMScore.datや録画データの配布・複製も自由です。

ただし、個人レベルの範疇を超える転載・収録の際には、できるだけ「事前に」narutoに教えてください。メールで連絡さえいただければ、返答は待たなくても結構です。単にどこにあるか把握しておきたいだけですので、お願いします。当然ですがアーカイブの内容を変更しないようにお願いします。

連絡先：naruto mikiso@gf6.so-net.ne.jp

Pendulumaniaをさまざまなメディアで紹介してくださるのは一向に構いません。適宜スクリーンショット(Sキーで生成)による画像を使用していただいても結構です。が、事後でも構いませんのでできるだけ連絡くださることを希望します。

なお、Pendulumaniaの製作者は「naruto」、著作者は「naruto/CANO-Lab」ですが、ウェブページ「CANO-Lab」は、narutoの個人ページではありません。「Pendulumaniaのページ」「作者のページ」としてCANO-Labを紹介してくださるのは大歓迎ですが、その際「narutoの(個人)ページ」といった書き方は誤解を招きます。微妙ですが、よろしくお願いします。


謝辞

テストプレイに協力してくださり、感想や意見をいただいた皆様。ありがとうございます。

  • 38ATP様、妖刀菊正様、タコ八様、M.N.様(以上、CANO-Lab)、かたやま某様、S.Hammer様、妖刀菊正のおねい様、かこさん様
  • takeL様(Natural H2O)、風来猫様(あそびの森)、ｍ．ｎ様(プロ研)、Douglas.Dourg.様(ONION KNIGHTS)、Ko-Ta様(Ko-Ta's HomePage)、BAY様(BAYの家)、カザマン様(NEWLONE Networx)、Bee様
  • Jacky様、あずさ様、りょうすけ様、文吾様、ひであき様、結花様(以上、某団体J)
  • 沢渡みかげ様、ココノ様、とびら様、カセギゴールド様、けんけん様
  • 同じ寮の田内様

正式版発表後、御意見ご感想、それに得点ファイルを頂いた皆様。ありがとうございます。

このゲームの製作には主に以下のソフトや、ライブラリを使用させていただきました。ありがとうございます。

Borland Delphi 4 Standard　(Inprise社)
すばらしいPASCALコンパイラ。すでにバージョン遅れ…
Adobe Photoshop 4.0J　(Adobe社)
すばらしい画像処理ソフト。バージョン遅れまくり…(涙)
myShade　(ExpressionTools社)
すばらしい3D画像製作ソフト。しかも安い。バージョンアップしたので、Shade Debut R4買っちゃいました。
Quadruple D Ver0.60　(SANDMAN様)
すばらしいDelphi用DirectXコンポーネント。これもまたバージョン遅れ。最新版はDirectX 7に対応です。Quadruple Dの最新版は http://www.din.or.jp/~hayase で入手可能です。
KBGM Version 0.08 (Kr.Shin様)
すばらしいSMF再生用ライブラリ。
KBGM Version 0.08
Copyright(C)1996-1999 Kr.Shin
KBGMの最新版は http://www.win.ne.jp/~krshin または NIFTY-Serve FGALGL LIB 5 で入手可能です。
Music Studio Standard 2.33 (Frieve様)
すばらしいシェアウェアのシーケンサ。title.midはこれで作曲しました。
H to PAS Converter Ver 0.20β (黒木様)
すばらしいC++ヘッダコンバータ。
SFWave Ver1.2 (サンフラット様)
すばらしいウェーブ効果音作成ソフト。
SFWave Ver1.2
Copyright(C)1996-1999 SUNFLAT
SFWaveの最新版は http://www.bekkoame.ne.jp/~sunflat/ で入手可能です。

なお、開発OSはMicrosoft Windows 98+Internet Explorer 5でした。ヘルプファイルの作成は、Microsoft HTML Help Workshop および、Microsoft FrontPage 2000 で行いました。


更新履歴

1999/10/05
CANO-Lab内でα版リリース。とりあえずメインゲーム部分が適当に動くだけ。
1999/10/07
CANO-Lab内でβ1リリース。コンフィグとレコード以外の大体の部分の作成完了。ただし曲はまだ。
1999/10/09
CANO-Lab内でβ2リリース。細かい修正および、レコード、コンフィグなどのコーディングも終わり、音以外の部分では一通り終える。
1999/10/17
音響の作成なども一通り終了し、外部への最初のリリース、β3公開。
1999/10/20ごろ
返ってきた反応のうち、簡単に実装できる部分を取り入れた、β4公開。まだまだ変更点が多すぎて書ききれない。また、動作速度に致命的な問題があることが分かり、大幅な改造を決意。
1999/11/30
β5公開。画面サイズおよびデザインの大幅な変更、マウスのクリック判定の変更。描画方法を改良し、動作速度を改良。ゴムの劣化ルールの新設、その他もろもろ。
1999/12/02
一部のマシンで発生していた動作不安定、フリーズなどの障害が解決し、Release Candidate 1公開。基本物理定数やゴムの劣化ルールの改良を加え、よりダイナミックな操作性と、高得点への可能性を出す。アプリケーションの終了後にタスクバーにごみが残る問題に対応。スクリーンショット生成に正式対応。その他。
1999/12/19
Release Candidate 2。コンボのリセットがゆっくりになるようにした。「完璧」の時の倍率計算を改良。得点の表示を見やすくした。ターゲット破壊ごとの得点を表示するかどうか設定可能にした。破片の表示を減らすことが可能に(.iniファイルを変更)。残り時間の計算方法の変更。ゲージのをすこし見やすく改良。その他内部処理の効率化。その他。
2000/01/10
正式版(Ver. 1.0)公開。このバージョンからVectorなどにアップロードし、転載可能に。オリジナルのBGM追加。Rec0.datが再生可能でないときはデモを始めないように修正。AUTOMATIC SAVEを有効にしているときはタイトルのNEW GAMEの右に録画マークをつけるようにした。INIファイル周りのシステム変更。実験モード追加…物理定数などを変更可能にし、物理的好奇心をそそれるように(笑)。画面サイズ800x600への正式対応。RejectAutoSaveオプションの追加。その他細かいチューンナップ。
2000/02/08
Ver1.1公開。PMMerge.exeと本体とを統合し、スコアファイルの連結が楽に。見づらいことがあったコンボ表示周りのグラフィックを修正。得点を20桁まで対応にすると同時に見やすくした。録画ファイルの再生時に、ランク表示を一部隠すようにした。ゲームのストーリーが増えた(ぉ
2001/02/01
1年ぶりにVer1.1.2公開。CANO-Lab移転に伴いヘルプなどを変更した。プログラム側では、CANO-Labへのリンクをつけた、だけ。


CANO-Lab

http://jn.swee.to/cano/

CANO-Lab(かのーらぼ)ホームページでは、これからも様々なゲームを開発したり、ホームページ上で様々な企画を開催していきます。

ぜひ一度おたちよりくださいませ。

CANO-Labマスコットキャラ、「かのかの」